package net.zjitc.books;
/**
 * @author 潘益婷
 * @date 2018/12/24 16:29
 * 工具类，实现图书增删改查功能
 */
public class BooksDao {
    /* 保存对象的容器选择用对象数组，该数组长度足够大，另外定义实际长度*/
    Books[] booksArray = new Books[50];
    int count = 0;

    /* 对象数组的元素使用前必须先初始化*/
    public void init() {
        for (int i = 0; i < booksArray.length; i++) {
            booksArray[i]=new Books();
        }
    }

    public void insert(Books books) {
        /*1、调用方法完成：判断数组中是否已经有该对象的id
         * 2、若不存在，把该对象添加到数组中，实际长度加1，提示保存成功
         * 3、若存在，提示保存失败，编号重复了*/
        Books b = select(books.getId());
        if (b == null) {
            booksArray[count] = books;
            count++;
            System.out.println("保存成功！");
        } else {
            System.out.println("保存失败！编号重复ll\n" +
                    "     *了！");
        }
    }

    /**
     * 根据用户传入的图书编号，查找图书，
     * 若id存在，返回图书对象
     * 若不存在，返回nu
     * @param id 图书编号
     * @return for (int i = 0; i < count; i++) {
     *             if (booksArray[i].getId() == id) {
     *                 return booksArray[i];
     *             }
     *         }
     *         return null; 图书对象
     */
    public Books select(int id) {

        return null;
    }


    /**
     * 查询数组中所有元素内容
     */
    public void selectAll() {
        System.out.println("所有图书列表：");
        System.out.println("\t编号\t|\t名称\t|\t价格\t|\t数量\t|\t出版社");
        for (int i = 0; i < count; i++) {
            System.out.println("\t" + booksArray[i].getId() + "\t|\t" + booksArray[i].getName()
                    + "\t|\t" + booksArray[i].getPrice() + "\t|\t" + booksArray[i].getNumber()
                    + "\t|\t" + booksArray[i].getPress());
        }
    }

    /**
     *  更新功能
     * @param id 要修改的图书id
     * @param b 修改后的图书对象
     */
    public void update(int id, Books b) {
        /* 数组中找到图书编号为id的元素，将其赋值为b
        *  提示更新成功*/
        for (int i = 0; i <count ; i++) {
            if(booksArray[i].getId()==id){
                booksArray[i]=b;
                break;
            }
        }
        System.out.println("更新成功");
    }

    /**
     * 删除编号为传入的id的图书对象
     * 循环覆盖：用后一项去覆盖前一项，实际使用长度-1
     * @param id
     */
    public void delete(int id) {
        for (int i = 0; i <count ; i++) {
            /* 找到要删除的元素*/
            if(booksArray[i].getId()==id){
                /* 循环：用后一项去覆盖前一项*/
                for (int j = i; j <count-1 ; j++) {
                    booksArray[j]=booksArray[j+1];
                }
                break;
            }
        }
        count--;
        System.out.println("删除成功！");
    }
}
